home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU10.ARC / MSD - PART 11 < prev    next >
Encoding:
Text File  |  2019-04-13  |  4.3 KB  |  77 lines

  1. ║CM:MSD - PART 11
  2. ║LM21:RM70:PP66:PG60
  3. ║P#21
  4. ║FT1:,,╨AGE <>
  5. ║AI-16
  6. $├7┴8           ╔F ╘╥┴├╦ [$55] IS NOT ZERO THEN THERE IS ANOTHER BLOCK TO THE FILE SO BRANCH TO ─┼╠1 TO HANDLE IT.
  7. $├7┴├           ╩╙╥ ═┴╨╧╒╘ [$┼├86] TO WRITE OUT THE NEW ┬┴═.
  8. $├7┴╞           ┼XIT WITH A JUMP TO ╞╥┼├╚╬ [$─2┼2] TO FREE THE INTERNAL READ CHANNEL.
  9. $├7┬2  ─┼╠1     ╩╙╥ ╞╥┼╘╙ [$┼├─8] TO MARK THIS TRACK AND SECTOR AS FREE.
  10. $├7┬5           ╩╙╥ ╬╪╘┬╒╞ [$─4┬7] TO GET THE NEXT BLOCK IN THE FILE.
  11. $├7┬8           ╩UMP TO ─┼╠2 TO CONTINUE DELETING THE FILE.
  12.  
  13.  
  14.  
  15.        ─┼╠─╔╥   ─ELETE THE CURRENT DIRECTORY ENTRY
  16.  
  17. $├7┬┬           ┌ERO .┴ AND .┘ AND SAVE .┴ IN (─╔╥┬╒╞),┘ [($69),┘] WHICH SETS THE STATUS AND TYPE FOR THE CURRENT FILE TO ZERO (IE AN AVAILABLE ENTRY).
  18. $├7├0           ╩╙╥ ╫╥╘╧╒╘ [$─┼02] TO WRITE OUT THE DIRECTORY BLOCK.
  19. $├7├3           ┼XIT WITH A JUMP TO ╫┴╘╩╧┬ [$─5╞7] TO WAIT FOR THE JOB TO COMPLETE.
  20.  
  21.  
  22.  
  23.        ─╒╨╠├╘   ─UPLICATE A DISKETTE
  24.  
  25. $├7├6           ╔F ─╒┴╠╞╠ [$┬7] IS NOT ZERO THEN THIS IS A DUAL DRIVE SO BRANCH TO ─╒╨╠┬╥ TO CONTINUE.
  26. $├7├┴           ╠OAD .┴ WITH $74 (─╥╔╓┼ ╬╧╘ ╥┼┴─┘) AND EXIT WITH A JUMP TO ├═─┼╥╥ [$├0╞─].
  27.  
  28.  
  29.  
  30.        ─╒╨╠┬╥   ─UPLICATE COMMAND PROCESSING
  31.  
  32. $├7├╞           ╩╙╥ ─╒╨╨╥═ [$├9╞7] TO PARSE THE DUPLICATE COMMAND.
  33. $├7─2           ├OPY THE SOURCE DRIVE NUMBER FROM ╞╔╠─╥╓+1 [$4├6─] TO ─╥╓╬╒═ [$54].
  34. $├7─7           ╩╙╥ ╙┼╘─╠─ [$├02─] TO TURN ON THE ╠┼─ FOR THIS DRIVE.
  35. $├7─┴           ╩╙╥ ╔╬╔╘─╥ [$─0╞9] TO INITIALIZE THE DRIVE.
  36. $├7──           ╩╙╥ ╙┼╠┬┴═ [$┼─┴8] TO SET ┬═╨╬╘ [$46-$47] TO THE ┬┴═ FOR THE SOURCE DRIVE.
  37. $├7┼0           ╠OAD .┘ WITH $02 AND IF (┬═╨╬╘),┘ [($46),┘] (THE DISK FORMAT CHARACTER) MATCHES ╓┼╥╬╒═ [$╞┼┬9] (THE FORMAT TYPE FOR THIS ─╧╙ THEN BRANCH TO ─╒╨1 TO CONTINUE.
  38. $├7┼9           ╘ERMINATE WITH A JUMP TO ╓╬┼╥╥ [$─5─3] TO INDICATE A ─╧╙ MISMATCH.
  39. $├7┼├  ─╒╨1     ╩╙╥ ╘╧╟─╥╓ [$├2┴9] TO SWITCH TO THE OTHER DRIVE.
  40. $├7┼╞           ╩╙╥ ╙┼╘─╠─ [$├02─] TO TURN ON THE ╠┼─ FOR THE DESTINATION DRIVE.
  41. $├7╞2           ╙ET .┘ TO THE DESTINATION DRIVE NUMBER AND SET .╪ TO THE SOURCE DRIVE NUMBER.
  42. $├7╞8           ├OPY THE SOURCE DISK ╔─ IN ─╙╦╔─1,╪ [$4├24,╪] AND ─╙╦╔─2,╪ [$4├26,╪] TO THE DESTINATION DISK ╔─ IN ─╙╦╔─1,┘ [$4├24,┘] AND ─╙╦╔─2,┘ [$4├26,┘].
  43. ║FP
  44. $├804           ╩╙╥ ╙┼╠┬┴═ [$┼─┴8] TO SET ┬═╨╬╘ [$46-$47] TO THE ┬┴═ FOR THE DESTINATION DRIVE.
  45. $├807           ╙ET THE FORMAT CHARACTER FOR THE DESTINATION DISKETTE TO ╓┼╥╬╒═ [$╞┼┬9].
  46. $├80┼           ╩╙╥ ├╠─├╚╬ [$─3┬┴] TO CLOSE ALL CHANNELS.
  47. $├811           ╫E ARE NOW SET TO DUPLICATE THE DISK SO DISABLE INTERRUPTS AND ╩╙╥ ╞╧╥═┴╘ [$╞820] TO FORMAT THE DESTINATION DISK.
  48. $├815           ╩╙╥ ═╧╓╚─1 [$╞700] TO POSITION READ/WRITE HEAD TO TRACK 1 ON THE DESTINATION DISK.
  49. $├818           ╩╙╥ ╙╫╔─╥╓ [$├85┼] TO SWITCH TO THE OTHER DRIVE.
  50. $├81┬           ╩╙╥ ═╧╓╚─1 [$╞700] TO POSITION READ WRITE HEAD TO TRACK 1 ON THE SOURCE DISK.
  51. $├81┼           ╩╙╥ ╘╧╟─╥╓ [$├2┴9] TO CHANGE DRIVE NUMBERS.
  52. $├821           ╙ET ├╒╥╘╥╦ [$4├╞7] TO $01 (IE. WE ARE CURRENTLY DUPLICATING TRACK 1).
  53. $├826  ─╒╨2     ╘HIS IS THE MAIN DUPLICATION LOOP - DISABLE INTERRUPTS.
  54. $├827           ╩╙╥ ─╒╨╘╥╦ [$├867] TO DUPLICATE THE CURRENT TRACK.
  55. $├82┴           ╔NCREMENT ├╒╥╘╥╦ [$4├╞7] AND IF IT HAS REACHED ═┴╪╘╥╦ [$4├╞6] THEN WE ARE FINISHED SO BRANCH TO ─╒╨3.
  56. $├835           ╙AVE CURRENT TRACK NUMBER ON THE STACK.
  57. $├836           ╩╙╥ ═╧╓╚┼─ [$╞693] TO POSITION THE READ/WRITE HEAD TO THE NEXT TRACK TO BE DUPLICATED.
  58. $├839           ╩╙╥ ╙╫╔─╥╓ [$├85┼] TO SWITCH TO THE DESTINATION DRIVE.
  59. $├83├           ╥ESTORE THE TRACK NUMBER FROM THE STACK.
  60. $├83─           ╩╙╥ ═╧╓╚┼─ [$╞693] TO POSITION THE DESTINATION DRIVE TO THE SAME TRACK.
  61. $├840           ╩╙╥ ╙╫╔─╥╓ [$├85┼] TO SWITCH BACK TO THE SOURCE DRIVE.
  62. $├843           ╩UMP TO ─╒╨2 TO DUPLICATE THIS TRACK.
  63. $├846  ─╒╨3     ─UPLICATION COMPLETED WITHOUT ERRORS - ENABLE INTERRUPTS.
  64. $├847           ╩╙╥ ╔╬╔╘─╥ [$─0╞9] TO INITIALIZE THE DRIVE.
  65. $├84┴           ╩╙╥ ╠┼─╧╞╞ [$├018] TO TURN OFF ╠┼─S FOR THIS DRIVE.
  66. $├84─           ╩╙╥ ╘╧╟─╥╓ [$├2┴9] TO SWITCH TO THE OTHER DRIVE.
  67. $├850           ╩╙╥ ╔╬╔╘─╥ [$─0╞9] TO INITIALIZE THE DRIVE.
  68. $├853           ╩╙╥ ╠┼─╧╞╞ [$├018] TO TURN OFF THE ╠┼─S.
  69. $├856           ╙ET ------ [$4┼┴4] TO ZERO AND TERMINATE THE COMMAND WITH A JUMP TO ┼╬─├═─ [$├0├╞].
  70.  
  71.  
  72.  
  73.        ╙╫╔─╥╓   ╙WITCH TO OTHER DRIVE AND TURN ON MOTOR
  74.  
  75. $├85┼           ╔NVERT THE DRIVE NUMBER IN ─╥╔╓┼ [$┬0] BY ┼╧╥ING IT WITH $01.
  76. $├864           ╩UMP TO ╧╬─┼╠ [$╞733] TO TURN ON THE DRIVE MOTOR.
  77.